1. Field of the Invention
The present invention relates to a presence system, and more particularly, to a presence system that can change presence information for a presentity automatically by using as a trigger a change occurring in presence information for other presentity. The present invention also relates to a dynamic buddy list generation method in the presence system, and more particularly, to a dynamic buddy list generation method for automatically generating a buddy list in any desired form. Furthermore, the present invention relates to a presence system and a presence notification destination controlling method and its program for use therewith, and more particularly, to a presence system that incorporates a system and other means for managing the communication state of each user.
2. Description of the Related Art
It has become increasingly common to use buddy lists for ascertaining the states of different users on a network. One representative technology using buddy lists is the presence system.
The presence system refers to a type of system for managing the communication states of different users. Its basic architecture is defined in RFC2778 (Network Working Group Request for Comments: 2778). Japanese Patent Laying-Open (Kokai) No. 2002-16696 described below also gives an outline of a presence system.
The presence system consists of presentities, a watcher, and a presence service. A presentity provides own presence information (i.e., the state of the principal). A watcher observes presence information provided by presentities. The presence service receives presence information from presentities and delivers it to the watcher. There are two types of watcher: fetcher and subscriber. A fetcher requests the presence service to provide the current presence information for a particular presentity. A subscriber requests the presence service to notify whenever a change occurs in the presence information for a particular presentity. (For details, refer to, for example, “A Model for Presence and Instant Messaging,” February 2000, in RFC (Request for Comments) 2778).
A typical conventional presence system requires users to set manually certain presence values (other than communication states, such as online and offline) that are associated with connections between a presence service client and a presence service. Relying on manual setting of these values by users is problematic in terms of the reliability of their presence information, since many users often forget updating their states.
In such a presence system, presence information is managed per individual user. This gives rise to another problem. When a user attempts to contact one of the members of a certain group, the user needs to check up the presence information for every member of the group. The user then must choose one member from those who are currently online, and transmit a message to that member. In addition, the user must always be aware of the member composition of each group on the network. Checking the presence information for every member of the group is an unreasonably onerous task for the user because the presence information he or she obtains can be for any member in the group. Also from the viewpoint of group members, there are privacy-related problems associated with disclosing their presence information unnecessarily to the user.
Many presence systems show the states of principals collected by their watchers in the form of a buddy list. A buddy list must be managed by each of the users of the presence service. This entails another problem. As the user continues to utilize the presence service, the number of communication partners increases, making the task of managing his or her buddy list increasingly burdensome. If the user wants to observe the states of different partners according to time of day, place and other context, the burden on the user becomes even greater because a buddy list must be prepared for each context.
A static buddy list presents other problems in addition to management burden. Suppose a user wants to have a buddy list for private use in addition to the existing one for business use. During off-duty hours, the user would use the new buddy list for contacting communication partners who are also not at work. The user is likely to encounter difficulties when preparing such a buddy list, because partners to be included in the private buddy list will stay in the list all the time, regardless of whether they are working or not. When using a conventional static buddy list, it is impossible for the user to create a state-specific buddy list.
Presently, it is not possible either to create a buddy list by restricting the current states of principals unless the user is aware of their URIs. One example of such a buddy list is one that shows taxis cruising near a prospective passenger based on location information. The number of taxis cruising in a town is by far too large for the passenger to identify the URI of every applicable taxi. Some conventional presence systems allow users to retrieve the URI of a principal using the name or e-mail address as a keyword. In this case, however large the number of users may be, the desired principals can be added to a buddy list from the name and address information. However, these system do not have a mechanism to retrieve URIs automatically based on a state. Representative technologies using buddy lists are disclosed in Japanese Patent Laying-Open (Kokai) No. 2002-074164 and No. 2002-170032, but neither of these solves the problems described above.
In presence systems, presentities, subscribers and presence services are all logical components. Some systems have a peer-to-peer configuration, wherein a server for a presence service is not needed when deploying these systems on networks. Others have a distributed configuration, wherein some presentity and subscriber functions are distributed between a client terminal and a server terminal. The present invention can be implemented in either configuration.
In a conventional presence service as described above, notification of a presence change is sent at a time to all the subscribers that are performing subscription; it is not possible for presentities to perform fine control of destinations of such notification.
For this reason, the conventional presence service may create inconveniences if a certain relationship will occur between a presentity and a subscriber according to the state of the presentity. If only a limited number of relationships can be processed at a time (for example, if a call starts as soon as a presentity goes online), there may appear some subscribers that are not able to establish a relationship with the presentity semipermanently.
There may be certain relationships that a user wants to give higher priority over others in processing, but conventional presence services typically have no mechanism to handle these relationships in a special manner. Furthermore, there is no mechanism in conventional presence services that allows a presentity to perform context-dependent control of destinations of notification based on its own state, time of day and so on.